Tipos de
Requerimientos

Funcionales, No Funcionales y Reusabilidad

Ingeniería de Requerimientos de Software | Nivel: Medio

👉 Usa las flechas del teclado o los botones para navegar →

INTRODUCCIÓN

Importancia de los Requerimientos

La ingeniería de requerimientos debe detallar los requerimientos funcionales, principalmente porque:

Es lo mínimo esperado

Los requerimientos funcionales definen qué debe hacer el sistema como mínimo.

Guía para desarrolladores

Permiten explicar a los desarrolladores qué deberán construir.

✅ Principio fundamental

Los requerimientos funcionales deben mantenerse independientes de la tecnología a utilizar. Será trabajo del diseñador ubicar la tecnología más adecuada que soporte las funciones descritas.

Características de un buen requerimiento

Cada requerimiento debe ser:

Preciso

Entendible

Comunicable

Verificable

REQUERIMIENTOS FUNCIONALES

Cinco Aspectos Clave

La mejor forma de describir requerimientos funcionales es a través de estos aspectos:

1. Descripción

Definición clara de la función esperada

2. Razón Fundamental

El por qué del requerimiento

3. Criterio

Forma de verificación medible

4. Restricciones

Reglas que rigen el comportamiento

5. Excepciones y Alternativas

Situaciones especiales y opciones

📌 Estos cinco aspectos trabajarán juntos para:
  • Proporcionar claridad total sobre cada función
  • Facilitar la comunicación con el equipo de desarrollo
  • Permitir la verificación del cumplimiento
  • Documentar casos especiales y reglas de negocio
1 — DESCRIPCIÓN

Redacción de Requerimientos

✅ Recomendaciones para describir funciones

• Utilizar oraciones cortas con un solo verbo
• Fáciles de entender
• Menos susceptibles de errores de interpretación

Fórmula recomendada por Robertson y Robertson

Cada función debe empezar con:

"El producto deberá..."

Esta oración especifica la necesidad de tener una función específica.

✗ Evitar ambigüedades

• "El producto debería..."
• "Se espera que el producto logre..."

Estos verbos crean confusión sobre si son funciones obligatorias u opcionales.

✓ Uso correcto

• "El producto deberá permitir..."
• "El sistema deberá mostrar..."

Estas oraciones establecen claramente funciones obligatorias.

Independencia tecnológica

✗ Limita implementación

"El sistema implementará un Web Service para proveer de un servicio por internet"

Describe el cómo

✓ Describe necesidad

"El sistema deberá permitir tener acceso a la aplicación a través de internet"

Establece el qué

2 — RAZÓN FUNDAMENTAL

El Por Qué del Requerimiento

La razón fundamental aclara la necesidad detrás del requerimiento y la importancia que tiene para la organización.

Ejemplo 1: Sistema de reservaciones de cine

Descripción:

El producto deberá mostrar los asientos ocupados.

Razón Fundamental:

Permitir identificar los lugares disponibles a los siguientes clientes.

Esta descripción permite conocer el uso del requerimiento para el buen servicio al cliente y su importancia.

Ejemplo 2: Alertas de temperatura - Comparación

Razón Fundamental A:

Poder mantener una sala confortable.

→ Prioridad: Comodidad del cliente

Razón Fundamental B:

Las alertas de temperatura deben ser tomadas en cuenta para evitar sobrecalentamiento del equipo de proyección, que puede provocar incendios.

→ Prioridad: Seguridad (ALTA)

💡 Importancia de la razón fundamental

La segunda razón es de seguridad y puede poner en riesgo vidas. Es un requerimiento de alta prioridad que establece un claro mensaje sobre el esfuerzo que deberá realizar el equipo de desarrollo.

3 — CRITERIO

Verificación del Cumplimiento

El criterio es un atributo para evaluar si el requerimiento cumple o no con su objetivo.

✅ Recomendación

Encontrar un criterio que se pueda medir cuantitativamente cuando sea posible. Esto evita interpretaciones sobre si cumplió o no un requerimiento.

Ejemplo: Sistema amigable para el usuario

Descripción:

El producto deberá ser amigable para el usuario.

⚠️ Muy ambigua - ¿Quién puede determinar si un sistema es amigable?

Razón Fundamental:

Los usuarios deberán encontrar el nuevo sistema más fácil de usar que el actual sistema, de tal manera que se cometan menos errores.

✓ Establece el por qué debe ser amigable

Criterio:

La tasa promedio de errores de captura deberá ser menos del 1.5%.

✓ Medida específica y verificable

📊 Ventajas del criterio cuantitativo
  • Permite verificar cumplimiento durante las pruebas
  • Proporciona datos de comprobación para el usuario
  • Sirve como base para el mantenimiento del producto
4 Y 5 — RESTRICCIONES Y EXCEPCIONES

Reglas y Situaciones Especiales

Restricciones

📌 Definición

Las restricciones son reglas que rigen el comportamiento de los requerimientos. Determinan las situaciones o escenarios en los que una función debe realizarse.

Algunas veces son:

  • Reglas de negocio: reglas de operación en apego a una política organizacional
  • Reglas externas: impuestas por la legislación

Excepciones y Alternativas

⚠️ Excepciones

Situaciones inevitables que pueden provocar desviaciones en el proceso o generar acciones incorrectas.

✓ Alternativas

Opciones que puede tomar el requerimiento en respuesta a la excepción detectada.

EJEMPLO COMPLETO

Sistema de Boletos de Cine

Descripción:

El producto deberá mostrar los asientos ocupados.

Razón Fundamental:

Permitir identificar los lugares disponibles a los clientes y evitar sobreventa de salas.

Criterio:

Las salas tienen una capacidad determinada por el número de asientos disponibles.

Restricciones:

Las salas no podrán sobrepasar su capacidad.

Condición de Excepción:

Si no existen más asientos disponibles en una sala, el sistema deberá impedir posteriores ventas para la misma sala.

Alternativa:

El sistema mostrará horarios de la misma función con asientos disponibles o, en caso de saturación del resto de las funciones, mostrará un aviso de "entradas agotadas".

5.2 — NO FUNCIONALES

Requerimientos No Funcionales

📌 Definición

Los requerimientos no funcionales establecen las características del desempeño que deberá demostrar el sistema en operación.

⚠️ Importancia

Son tan importantes como los requerimientos funcionales, porque pueden ser un factor decisivo en la aceptación del usuario final.

Según Robertson y Robertson (2012), los requerimientos no funcionales describen:

  • Las cualidades que debe tener el producto
  • De lo bien que hace las cosas que hace
✅ Beneficios

Estos requerimientos permiten que el producto sea:

  • Atractivo
  • Confiable
  • Rápido
  • Seguro
ESCENARIO REAL

¿Por Qué los Usuarios Rechazan el Sistema?

📖 Caso: Sistema Lento

El gerente de una empresa está revisando por qué los usuarios se resisten a utilizar el nuevo sistema. El gerente conoce de antemano que el sistema realiza todo lo que se espera que haga, sin embargo al entrevistar a los usuarios se da cuenta dónde está el error.

Las computadoras de los usuarios se encuentran ya saturadas con algunos sistemas con los que han estado trabajando durante varios años. Al instalar el nuevo sistema notan que es bastante lento. Procesar una orden es más tardado que antes, por lo que los usuarios prefieren hacerlo manualmente que utilizar el sistema.

❌ Problema identificado

Este escenario se presenta porque los requerimientos no funcionales fueron ignorados. No se consideró medir el desempeño en las computadoras actuales de los usuarios, provocando molestia y resistencia al cambio.

✓ Lección

Los requerimientos no funcionales complementan a los requerimientos funcionales. No basta con especificar qué debe hacer el sistema, también es necesario especificar cómo de bien debe hacerlo.

TIPOS NO FUNCIONALES

Categorías de Requerimientos No Funcionales

Categoría Descripción Ejemplo
Look and Feel Parte visual y experiencia de uso El producto debe cumplir con los estándares de imagen corporativa.
Usabilidad Facilidad de uso de las funciones El producto debe ser utilizado sin dificultad por usuarios con experiencia limitada en computadoras.
Rendimiento Rapidez, recursos, disponibilidad, precisión, confiabilidad El sistema deberá soportar 300 usuarios concurrentes.
Entorno operacional Ambiente de funcionamiento El producto deberá ser portátil y soportar temperaturas extremas.
Mantenibilidad Facilidad para cambios futuros El sistema deberá mostrar contenido en español e inglés y podrá ser traducido a otros idiomas fácilmente.
Seguridad Confidencialidad, integridad, disponibilidad El sistema deberá obligar a los usuarios a generar claves de acceso robustas.
Legales Normas y reglas que debe cumplir El producto deberá cumplir con las especificaciones del SAT para factura electrónica.
EJEMPLOS REALES

Ventajas Competitivas

En muchos productos de consumo, los requerimientos no funcionales generan características específicas que se traducen en ventajas competitivas.

iPad®

Categoría: Usabilidad

El mercado tiene una clara preferencia por el iPad® como dispositivo tipo tableta, debido principalmente a su funcionamiento intuitivo.

Hasta un niño de 4 años podría utilizarlo sin ninguna instrucción.

Amazon®

Categoría: Look and Feel / Usabilidad

La página de Amazon® crea una tienda virtual que es preferida no sólo porque funciona bien, sino porque hace que la experiencia de compra sea única.

✅ Conclusión

Los requerimientos no funcionales son propiedades que debe tener la funcionalidad del producto de software. No se tratan sólo de "hacer las cosas", sino de "hacerlas excepcionalmente bien".

📌 Recordatorio

Cada requerimiento no funcional debe ser acompañado de:

  • Descripción breve
  • Razón fundamental
  • Criterio
  • Restricciones
  • Excepciones
5.3 — REUSABILIDAD

Reusabilidad de Requerimientos

Sin duda cada proyecto de desarrollo de software es único; sus objetivos y personas involucradas cambian, por lo que el resultado necesariamente será diferente.

💡 Oportunidad de ahorro

Sin embargo, con el tiempo los productos son utilizados de la misma manera entre organizaciones del mismo giro, entonces es posible ahorrar esfuerzos y tiempo cuando hay requerimientos similares en varios proyectos.

Ejemplo: Tienda de conveniencia → Gasolinera

Imagina que fuiste parte del proyecto de desarrollo de software para una tienda de conveniencia. El producto permite a los cajeros ingresar ventas diarias en terminales con pantallas táctiles.

Estos requerimientos pueden aplicar para otro proyecto, por ejemplo una gasolinera. No es que se utilicen exactamente los mismos, sino que pueden ser analizados y complementados por el equipo del proyecto.

✅ Beneficios
  • El equipo avanza rápidamente
  • Se pueden definir detalles de funcionalidades más importantes
  • Se genera experiencia en el equipo de desarrollo
  • Se puede crear una librería de requerimientos de reuso
REUSABILIDAD

Cultura Organizacional

⚠️ Advertencia de Robertson y Robertson (2012)

"La reutilización exitosa de requerimientos comienza con tener una cultura organizacional que conscientemente impulse a reutilizar en lugar de reinventar".

✅ Objetivo final

Lo que necesitamos es que se produzca un software de calidad que sea útil para el usuario y se debe utilizar toda la experiencia generada de proyectos anteriores.

Patrones

Cualquier patrón sirve de guía para repetir una acción y obtener un resultado similar.

Analogía: El sastre

Un sastre utiliza patrones para confeccionar a medida algún traje.

En desarrollo de software

Encontrar un patrón en las funciones requeridas sirve como base para la reutilización y permite describir con precisión cada requerimiento.

🎯 Habilidad del ingeniero de requerimientos

Debe tener la capacidad de encontrar los patrones entre diferentes proyectos a través de la abstracción de las necesidades que se repiten.

🎯 EJERCICIO 1

Identificación de Tipos de Requerimientos

📝 Instrucciones

Identifica si cada requerimiento es Funcional (F) o No Funcional (NF).

🎯 EJERCICIO 2

Aspectos de Requerimientos Funcionales

📝 Instrucciones

Completa los espacios en blanco.

GLOSARIO

Términos Clave

Término Definición
Precisión El grado en que las salidas de software son suficientemente precisas para satisfacer su uso previsto.
Usabilidad El esfuerzo necesario para aprender y utilizar el software.
Integridad La medida en que se controla el acceso y permisos de los usuarios a un programa.
Eficiencia La cantidad de recursos informáticos requeridos por este software para realizar su función.
Portabilidad El esfuerzo requerido para transferir un software de un entorno de configuración de hardware y software a otro.
Escalabilidad La medida en que el software puede aprovechar recursos adicionales para enfrentar de manera eficiente mayor demanda.
Interoperabilidad El esfuerzo requerido para acoplar el software con otro.
Robustez El grado en que el programa sigue funcionando en presencia de entradas no válidas o condiciones ambientales estresantes.
Mantenibilidad El esfuerzo necesario para localizar y corregir un error en el software o para cambiar o agregar capacidades.
Reusabilidad La medida en que los componentes o módulos del software se pueden utilizar para otros fines.
BIBLIOGRAFÍA

Referencia en Formato APA

📚 Texto principal

Robertson, S., y Robertson, J. (2012). Mastering the Requirements Process: Getting Requirements Right (3ª ed.). EE.UU: Pearson.

💡 Contenidos basados en:
  • Capítulo sobre requerimientos funcionales
  • Clasificación y descripción de requerimientos no funcionales
  • Reusabilidad de requerimientos y patrones
  • Mejores prácticas en especificación de requerimientos

Resumen

Los requerimientos funcionales describen QUÉ debe hacer el sistema

Los requerimientos no funcionales describen QUÉ TAN BIEN debe hacerlo

¿Preguntas?

1 / 19